Глава 19

Организация поисковой системы

При проектировании Web-сайта немаловажно продумать удобный интерфейс с такими возможностями, как иерархическое меню, позволяющее легко ориентироваться в разделах сайта, переход к первой странице при нахождении пользователя на страницах нижнего уровня, карта сайта и т. д.

Однако при создании Web-ресурса, насыщенного разнообразной информацией, представляющей собой запутанную структуру всевозможных документов, наличия вышеперечисленных возможностей будет вряд ли достаточно. И в этой связи было бы уместно в качестве вспомогательного инструмента дополнить Web-сайт системой поиска.

Системы поиска по своей сложности могут быть разными, от простой системы, включающей текстовое поле для ввода критерия поиска с кнопкой выполнения, до самых сложных, использующих дополнительные инструменты для составления гибких запросов и базирующихся на оригинальных алгоритмах поиска.

Поисковый сервер Verity

ColdFusion Server 5 содержит ограниченную OEM-версию сервера Verity K2, являющегося высокомасштабируемым поисковым сервером. Сервер Verity K2 поддерживает одновременную индексацию распределенных архивов базы данных и обрабатывает сотни параллельных запросов пользователей.

Версия сервера Verity К2, являющаяся частью ColdFusion 5, имеет следующие ограничения:

Поисковый сервер Verity в ColdFusion работает в двух режимах:

По умолчанию, если вы не сконфигурируете ColdFusion для использования сервера Verity K2, система будет работать в обычном режиме VDK. Verity Server K2 устанавливается по умолчанию с ColdFusion Server, но активизируется вручную путем запуска исполняемого командного файла и является "урезанной" версией. Чтобы использовать режим К2, необходимо отредактировать файл регистрации сервера k2server.ini, сконфигурировать ColdFusion для использования сервера К2 и перезапустить исполняемый файл k2server.exe с соответствующей комбинацией ключей. Для устранения вышеперечисленных ограничений на максимальное количество используемых документов при поиске следует установить полную лицензионную версию сервера Verity Server K2.

Verity Server K2 — высокорезультативный поисковый механизм, разработанный для быстрой обработки запросов в высокоэффективной распределенной системе. Система поиска К2 работает по технологии клиент-сервер. Клиентские приложения К2, такие как приложения ColdFusion, обеспечивают пользователям доступ к индексным документам, хранящимся в коллекциях Verity. Сервер К2 — комплексное приложение, отслеживающее любые изменения, сделанные индексирующими приложениями. Система поиска Verity Server K2 позволяет воспользоваться преимуществом самых последних технологий в области аппаратных средств ЭВМ и программного обеспечения и предоставляет следующие возможности: -

Принцип организации поисковой системы

ColdFusion Server предоставляет этапы создания поисковой системы.

Коллекции в ColdFusion представляют собой некоторое хранилище на физическом уровне, состоящее из двух каталогов: Custom и File, по структуре подобных друг другу. При этом коллекция регистрируется с уникальным именем, по которому и происходит обращение к данным конкретной коллекции.

Коллекции, в свою очередь, могут быть внутренними, или еще будем их называть "родными" это коллекции, созданные с мощью средств ColdFusion, и коллекции- внешние, сформированные инструментами других приложений. При выполнении поиска не следует использовать вместе "родные" и внешние коллекции.

Большинство существующих классических информационно-поисковых систем применяют механизм автоматического сжатия (индексации) текста документов. Задачей автоматической индексации является составление индекса документа- информации, в сжатом виде представляющей основной смысл документа. Индекс составляется независимо по отношению к отдельному запросу пользователя и рассчитан на многократное применение.

В основе автоматизированных информационно-поисковых систем, обрабатывающих документы определенной тематики, лежат воспроизводящие инженерно-лингвистические модели, ориентированные либо на выделение наиболее содержательных фрагментов обрабатываемого текста (синтаксическое сжатие), либо на опознание, выделение и смысловую переработку той лексики и фразеологии текста, которая передает понятия, соответствующие его тематике (лексическое индексирование, аннотирование, реферирование).

ColdFusion Verity поддерживает широкий спектр типов документов и файлов, которые можно подвергать индексации с последующим поиском и выводом рейтинговых результатов.

Список текстовых форматов, поддерживаемых ColdFusion Verity, таков:

Список форматов электронных таблиц, поддерживаемых ColdFusion Verity:

Список графических форматов, поддерживаемых ColdFusion Verity:

Организация же интерфейса поиска и включения поддержки тех или иных типов файлов в большей степени зависит от требований к вашему Web-ресурсу.

Управление коллекциями

Как уже было отмечено, ColdFusion позволяет создавать коллекции визуально, используя при этом страницу администратора "ColdFusion Administrator" в разделе Server | Data Sources | Verity Collections (Сервер | Источники данных | Коллекции для системы Verity). К примеру, для создания коллекции MyLineCruisesCol необходимо в упомянутом разделе страницы администратора ввести наименование коллекции (в поле Name (Имя)), месторасположение коллекции (в поле Path (Путь)) и выбрать язык, поддерживаемый для данной коллекции (в раскрывающемся списке Language (Язык)), как это показано на рис. 19.1.

По умолчанию ColdFusion предлагает размещать новые коллекции в каталоге X:\CFUSION\verity\collections\, где X — устройство, на которое был предустановлен пакет ColdFusion Server.

Рис. 19.1. Страница "ColdFusion Administrator", раздел Verity Collections для ввода данных

Заполнив данные для создаваемой коллекции, следует воспользоваться кнопкой Submit Changes (Применить изменения), что позволит выполнить команду создания коллекции. Далее при успешном выполнении указанной команды созданная коллекция будет отражена в списке Connected Verity Collections (Подключенные коллекции для системы Verity), в чем можно убедиться из рис. 19.2.

Здесь же, как видно из рис. 19.2, по отношению к подключенным коллекциям можно совершать различные действия с помощью соответствующих кнопок:

Впрочем, ColdFusion оснащен инструментом, позволяющим управлять коллекциями на программном уровне. И в качестве такого инструмента представляем .тег <CFCOLLECTION>.

Рис. 19.2. Страница "ColdFusion Administrator", раздел Verity Collections

отображает результат создания коллекции

Тег <CFCOLLECTION>

Синтаксис:

<CFCOLLECTION

ACTION = "Create | Repair | Delete | Optimize | Map"

COLLECTION = "collection_name" PATH = "path_of_verity_directory"

LANGUAGE = "language_name">

В табл. 19.1 приведено описание атрибутов тега <CFCOLLECTION>.

Таблица 19.1. Описание атрибутов тега <CFCOLLECTION>

Атрибут

Описание

ACTION

COLLECTION PATH

LANGUAGE

Действие. Возможные значения:

  • Create — создает коллекции по указанному пути;
  • Repair— восстанавливает испорченные данные в существующей коллекции;
  • Delete — удаляет коллекцию;
  • Optimize — производит чистку и реорганизует данные для эффективной работы;
  • Map — назначает псевдоним существующей коллекции. Обязательный атрибут

Имя коллекции или псевдонима для действия Map. Обязательный атрибут

Путь к коллекции Verity, где должна быть создана коллекция или пвевдоним. Обязательный атрибут для действий Create и Map. При создании коллекции с именем MyFirstCol и указанием пути D:\CFUSION\verity\collections\ будет создан каталог D:\CFUSION\ Verity\collections\MyFirstCol с необходимыми подкаталогами для данной коллекции. При указании же псевдонима (Map) должен быть определен полный путь к коллекции, например для коллекции MyFirstCol путь может быть определен следующим образом: D:\CFUSION\verity\collections\MyFirstCol

Язык, используемый для данной коллекции. Возможные значения:

  • English — английский язык (по умолчанию);
  • Danish — датский язык;
  • Dutch — голландский язык;
  • Finnish — финский язык;
  • French — французский язык;
  • German — немецкий язык;
  • Italian — итальянский язык;
  • Norwegian — норвежский язык;
  • Portuguese — португальский язык;
  • Spanish — испанский язык;
  • Swedish — шведский язык.

Для использования данного атрибута должна быть установлена международная версия программы поиска — ColdFusion International Pack. Необязательный атрибут

 

Пример управления коллекциями

В качестве примера приведем код, позволяющий создать уже упомянутую коллекцию MyLineCruisesCol:

<CFCOLLECTION

ACTION = "Create"

COLLECTION = "MyLineCruisesCol"

PATH = "D:\CFUSION\Verity\Collections\"

LANGUAGE = "English">

Для удаления созданной нами коллекции достаточно выполнить следующий код:

<CFCOLLECTION

ACTION = "Delete"

COLLECTION = "MyLineCruisesCol">

Аналогичным образом можно совершать описанные выше действия по отношению к любой из существующих коллекций.

Индексирование данных

Не поленимся еще раз отметить, что задачей индексации является составление индекса документа — информации, в сжатом виде доносящей основной смысл документа. Индекс составляется независимо по отношению к отдельному запросу пользователя и рассчитан на многократное применение. В качестве инструмента индексации в ColdFusion используется тег <CFINDEX>.

Тег <CFINDEX>

Синтаксис:

<CFINDEX

COLLECTION = "collection_name"

ACTION = "Update | Delete | Purge | Refresh"

TYPE = "File | Path | Custom"

TITLE = "title"

KEY = "ID"

BODY = "body"

CUSTOM1 = "custom_value" CUSTOM2 = "custom_value" URLPATH = "URL"

EXTENSIONS = "file extensions"

QUERY = "query_name" RECURSE = "Yes | No" EXTERNAL ="Yes | No"

LANGUAGE = "language_name"> В табл. 19.2 представлено описание атрибутов тега <CFINDEX>.

Таблица 19.2. Описание атрибутов тега <CFINDEX>

Атрибут

Описание

COLLECTION ACTION

TYPE

TITLE KEY

Наименование коллекции. При индексации внешней коллекции, когда атрибут EXTERNAL="Yes", необходимо указывать полный путь к коллекции. Обязательный атрибут

Действие. Возможные значения:

  • Update — обновляет индекс с добавлением ключа, указанного атрибутом KEY, если данный ключ еще не определен;
  • Delete — удаляет ключ из данной коллекции, указанный с помощью атрибута KEY;
  • Purge — очищает данные из указанной коллекции, оставляя коллекцию пригодной для последующего заполнения данными;
  • Refresh— очищает данные из указанной коллекции перед заполнением очередными данными.

Необязательный атрибут Тип индексации. Возможные значения:

  • File — файл;
  • Path — путь;
  • Custom— пользовательский.

Необязательный атрибут

Заголовок для коллекции, так же может принимать значение колонки запроса. Обязательный атрибут для типа индексации со значением Custom

Уникальный идентификатор. Возможные значения:

  • имя файла, если TYPE="File";
  • полный путь, если TYPE="Path";
  • наименование колонки таблицы, участвующей в запросе и являющейся уникальным ключом (primary key), или любая другая колонка таблицы из того же запроса, используемая в качестве уникального идентификатора, где атрибут TYPE="Custom".

Необязательный атрибут

 

Атрибут

Описание

BODY

ASCII-текст для индексирования или колонка, по которой будет произведена индексация участвующей в запросе таблицы. Обязательный атрибут для TYPE="Custom". При использовании запроса можно указывать сразу несколько колонок через запятую

CUSTOM1

Пользовательское поле 1, которое будет храниться с результатом индексации. В качестве значения можно использовать колонку запроса. Необязательный атрибут

CUSTOM2

Пользовательское поле 2, аналогично атрибуту CUSTOM2

URLPATH

Путь гиперссылки для файлов. Необязательный атрибут. Можно использовать, когда TYPE="FiIe" или TYPE="Path". Например: URLPATH = "http: //127 . 0. 0. I/my/". В этом случае при использовании тега <CFSEARCH> полное значение выводимой колонки URL будет принимать значение: "http: //127 . 0 . 0 . I/my/" + + "имя файла". Если данный атрибут не указывается, при использовании все того же тега <CFSEARCH> переменная URL будет принимать значение "имя файла"

EXTENSIONS

Список расширений рассматриваемых файлов, указанных через запятую. Необязательный атрибут. По умолчанию: htm, html, cfm, cfml, dbm, dbml. Чтобы использовать файлы без расширения, можно включать в список следующее значение: "* . "

QUERY

Имя запроса. Позволяет включать в коллекцию данные из БД. Необязательный атрибут

RECURSE

Индикатор рекурсии. Возможные значения:

• Yes— да; • No — нет (по умолчанию).

При использовании атрибута TYPE.= "Path" и RECURSE="Yes" индексируются также документы, находящиеся в подкаталогах относительно пути, заданного атрибутом KEY. Необязательный атрибут

EXTERNAL

Индикатор расположения коллекции. Возможные значения:

  • Yes — да; используется внешняя коллекция, при этом необходимо указывать полный путь к коллекции;
  • No — нет (по умолчанию); используется внутренняя коллекция ColdFusion, включенная в поисковую систему Verity

Необязательный атрибут

LANGUAGE

Аналогичен одноименному атрибуту тега <CFCOLLECTION>

 

Примеры индексирования данных

Приведенные ниже примеры подразумевают наличие коллекции MyLinecruisesCoi. Предположим, что нам необходимо проиндексировать документы, находящиеся в каталоге C:\Apache\htdocs\MyLineCruises\ и имеющие расширения htm, html, cfm, cfml, doc и xls:

<CFINDEX

COLLECTION = "MyLineCruisesCol"

ACTION = "Refresh"

TYPE = "Path"

EXTENSIONS = ".htm, .html, .cfm, .cfml, .doc, .xls"

KEY = "C:\Apache\htdocs\MyLineCruises\">

Здесь с помощью атрибута ACTION вызывается действие Refresh (Освежить), позволяющее удалить данные из указанной коллекции и заполнить эту коллекцию новой информацией.

С помощью тега <CFINDEX> также можно индексировать данные, полученные на основании пользовательских запросов. Характерным примером может являться использование тега <CFQUERY>, позволяющего сформировать запрос к базе данных и тем самым получить объект запроса с набором данных. А уже впоследствии полученный набор данных индексируется согласно необходимому порядку. Приведем пример:

<CFQUERY NAME="GetTour" DATASOURCE="Cruise">

SELECT Key_tou, Name_tou, PointDepart_tou,

NumLandingPlaces_tou, Time_tou, CostAdult_tou,

CostChildren_tou, CostSenior_tou FROM Tour </CFQUERY>

<CFINDEX

COLLECTION = "MyLineCruisesCol"

TITLE = "Name_tou"

BODY = "PointDepart_tou, NumLandingPlaces_tou"

ACTION = "Refresh"

TYPE = "Custom"

KEY = "Key_tou"

CUSTOM1 = "Time_tou"

QUERY = "GetTour">

В данном фрагменте кода с помощью атрибута QUERY тега <CFINDEX> было указано имя предварительно созданного запроса. При этом следует обратить внимание на то, что индексирование производится с пользовательским типом TYPE="Custom", указан обязательный в этом случае атрибут заголовка TITLE и в качестве идентификатора KEY выбрано поле таблицы, являющееcя уникальным ключом.

Поиск данных

Теперь, когда мы имеем представление о коллекциях и индексации данных, имеет смысл поговорить, для чего, собственно, все это задумано. Для поиска. Поиск в ColdFusion осуществляется с помощью тега <CFSEARCH>.

Тег <CFSEARCH>

Синтаксис:

<CFSEARCH

NAME = "search_name" COLLECTION = "collection__name"

TYPE = "Simple | Explicit" CRITERIA = "search_expression"

MAXROWS = "number" STARTROW = "row_number"

EXTERNAL = "Yes | No" LANGUAGE = "language_name">

В табл. 19.3 представлено описание атрибутов тега <CFSEARCH>.

Таблица 19.3. Описание атрибутов тега <CFSEARCH>

Атрибут

Описание

NAME COLLECTION

TYPE

Имя запроса, включающего результат поиска. Обязательный атрибут

Имя коллекции. При поиске из внешней коллекции, когда атрибут EXTERNAL="Yes", необходимо указывать полный путь к коллекции. Можно перечислять несколько коллекций через запятую, однако нельзя сочетать внутренние и внешние коллекции. Обязательный атрибут

Тип поиска. Возможные значения:

  • simple — простой (по умолчанию); используются операторы STEM и MANY;
  • Explicit - подробный; все операторы должны быть вызваны явным образом.

Необязательный атрибут

 

Атрибут

Описание

CRITERIA MAXROWS

STARTROW EXTERNAL

LANGUAGE

Критерий поиска. Необязательный атрибут

Определяет максимальное количество записей для возвращаемого результата поиска. По умолчанию не ограничивает возвращаемое количество записей. Необязательный атрибут

Номер записи, с которой следует выводить полученные данные. По умолчанию 1 . Необязательный атрибут

Индикатор расположения коллекции. Возможные значения:

  • Yes — да; используется внешняя коллекция, при этом необходимо указывать полный путь к коллекции;
  • No — нет (по умолчанию); используется внутренняя коллекция ColdFusion, включенная в поисковую систему Verity.

Необязательный атрибут Аналогично описанию тега <CFCOLLECTION>

При использовании тега <CFSEARCH> создается объект запроса, обеспечивающий доступ к информации относительно результата поиска. При этом в полученный объект запроса включаются следующие колонки:

Также после выполнения тега <CFSEARCH> формируются три переменные, позволяющие анализировать созданный объект запроса с результатом поиска. Далее приведем список этих переменных:

Пример поиска

Мы уже неоднократно возвращались к реализованному нами проекту "Му-Line Cruises". И этот раздел не будет исключением. Далее в листинге 19.1 представлен код страницы Fmd.cfm, которая позволяет выводить результат поиска в соответствии с используемым критерием и рейтинговым показателем по каждой найденной записи.

Листинг 19.1. Код страницы Find.cfm

<HTML> <HEAD>

<CFINCLUDE TEMPLATE = "MyHEAD. cfm">

<link rel="STYLESHEET" type="text/css" href="main.css">

<script type="text/javascript" language="JavaScript"

src="main. js"></script> <script language="JavaScript">

if (ie) {document.write('<link rel="stylesheet" type="text/css"

href="main_ie.ess" title="master">');} </script> </HEAD>

<BODY onload="init(l)" bgcolor="<CFOUTPUT>#application.BGColorPage#</CFOUTPUT>"

text="Black" alink="#l07098" link="#OC!C47" vlink="#003366">

<CFINCLUDE TEMPLATE = "BasicBlock.cfm">

<DIV id="textl">

<CFIF isDefined("URL.Criterion")>

<CFSEARCH NAME = "MySearch"

COLLECTION = "MyLineCruisesCol" TYPE="Explicit"

CRITERIA = "#URL.Criterion#">

<CFOUTPUT>

<TABLE width="600" border='0' cellspacing='4' cellpadding='4'>

<TR> <TD class="title">Search Results: "#URL.Criterion#"</TD> </TR>

<TR> <TD class="menleft">

<CFIF MySearch,RecordCount eq 0>

The records by your criterion of search are absent.

<CFELSE> In total is found #MySearch.RecordCount# of #MySearch.RecordsSearched# record(s). </CFIF> </TD> </TR>

</TABLE> </CFOUTPUT>

<TABLE width="600" border='0' cellspacing='4' cellpadding='4'>

<TR align="center">

<TD class="txtTitleTab" width="20">Row</TD>

<TD class="txtTitleTab" width="50">Score</TD>

<TD class="txtTitleTab" width="100">Title</TD>

<TD class="txtTitleTab" width="430" align="left">Summary</TD>

</TR>

<CFOUTPUT QUERY="MySearch">

<TR><TD colspan="4" bgcolor="122c6d" height=l></td></TR>

<TR valign="top">

<TD class="txtTab" align="right">ICurrentRow#</TD>

<TD class="txtTab" align="right">#Score#</TD>

<TD class="txtTab">

<a href = "#URL#" target = "blank">#Title#</a></TD>

<TD class="txtTab">|Siaramary#</TD>

</TR>

</CFOUTPUT>

</TABLE> <CFELSE>

<CFOUTPUT>

<p class="txtError">

The criterion of search is absent!

</p>

</CFOUTPUT> </CFIF> </DIV>

</BODY> </HTML>

Перед использованием рассмотренного выше кода данные были проиндексированы в соответствии с первым примером индексации, приведенным в этой главе.

Между тем, в ColdFusion Studio среди богатого набора мастеров (wizards) существует мастер Verity — Verity Wizard, позволяющий создать на лету набор CFML-страниц для реализации поисковой системы.

При формировании критериев поиска ColdFusion предоставляет большой набор дополнительных операторов, позволяющих добиваться "изысканных" результатов. О чем, собственно говоря, и пойдет речь в следующем разделе.

Построение выражений поиска

При использовании тега <CFSEARCH> можно задавать как простой (simple) так подробный (Explicit) тип поиска. Что касается простого типа поиска, установленного по умолчанию, то при этом уже подразумевается наличие операторов STEM (ищет всевозможные варианты указанного слова, одноко-ренные слова) и MANY (подсчитывает плотность слов или фраз, определяя рейтинговую величину для найденных записей). Что же касается подробного поиска, то операторы должны быть вызваны явным образом.

Отметим, что при формировании выражений для отображения специальных символов, как обычных, следует перед ними использовать левую наклонную черту \. Например, для отображения знака квадратной скобки ([) следует писать:

\[

Специальными символами следует считать:

, ( ) [ ] " \ @ { } < > '

Сервер ColdFusion позволяет комбинировать операторы и модификаторы, которые необходимо заключать в угловые скобки, например:

<STEM>Seaport Liberty Cruise

Однако такие операторы как AND (И), OR (ИЛИ) или NOT (НЕТ) можно использовать без скобок. Например:

Bruise OR Line NOT Yankee Stadium

Для указания приоритета можно добавить круглые скобки. Например:

Bruises AND (Liberty OR Harlem)

Впрочем, это же условие поиска можно задать еще двумя способами в соответствии с правилом построения выражения:

AND (Cruises, Liberty OR Harlem) или

AND (Cruises, OR (Liberty, Harlem))

Поисковый сервер Verity позволяет использовать специальные символы подстановки: * и ?. Здесь символ звездочки (*) подразумевает неопределенное количество любых символов, а знак вопроса (?) предполагает один произвольный символ. Например:

The best developer of the programs is M?cro*

Для данного выражения допустимыми будут и Microsoft, и Macromedia, и Micrografx, и т. д.

Мы уже затронули такие операторы, как AND, OR и NOT. Впрочем, в ColdFusion Verity существует еще ряд операторов, позволяющих выразить логику, которую необходимо применить к элементам поиска. Список возможных операторов таков:

R качестве определяемых полей могут рассматриваться следующие переменные:

Также для числовых выражений могут быть использованы следующие операторы:

Использование Verity Server K2

В начале данной главы мы отметили, что поисковый сервер Verity в ColdFusion работает в двух режимах: в обычном режиме VDK, используемом по умолчанию, и режиме К2, являющемся высокоэффективным режимом поиска. Напрашивается вопрос: "Как же ColdFusion определяет режим работы поискового сервера?".

ColdFusion определяет режим поиска в Verity, сравнивая название коллекции, указанное тегом <CFSEARCH>, со значениями в локальном регистрационном журнале. Если название коллекции найдено, то будет производиться обычный поиск VDK. Имена коллекций заносятся в журнал путем вызова тега <CFCOLLECTION> или с помощью страницы администратора, как уже было рассмотрено выше. Если название коллекции не найдено, ColdFusion использует для поиска режим К2.

Для конфигурирования сервера Verity K2 можно воспользоваться страницей администратора "ColdFusion Administrator", выбрав при этом раздел Server | Data Sources | Verity Server (Сервер | Источники данных | Сервер для системы Verity).

Следующим шагом необходимо отредактировать файл k2server.ini, позволяющий задавать коллекции для поиска с помощью сервера Verity К2. В листинге 19.2 приведен пример конфигурационного ini-файла.

Рис. 19.3. Страница "ColdFusion Administrator", раздел Verity Server

Листинг 19.2. Конфигурационный файл k2server.ini сервера Verity K2

1 ## Пример ini-файла сервера К2, используемого с ColdFusion.

2

3 [Server]

4

5 ## Число одновременно существующих потоков при поиске данных

6 numThreads=5

7 ## Максимальное число обрабатываемых файлов в одном потоке

8 maxFiles=100

9 ## Максимальное число клиентов, одновременно

10 ## подсоединяющихся к серверу К2

11 numListeners=20

12 ## Номер порта

13 portNo=9901

14 ## Расположение домашнего каталога, используемого

15 ## в качестве ресурсов сервера Verity K2

16 vdkHome=d:\cfusion\verity\common 17

18 ## Дополнительные параметры, используемые по умолчанию

19 sortTruncDocs= 2.0 accessProfile=

21 knowledgeBase=

22 charMap=

23 language=

24 locale= 25

26 ## Коллекции

27 [Coll-0]

28 collPath=d:\cfusion\verity\

collections\MyLineCruisesCol\file

29 collAlias= MyLineCruisesCol_file

30 topicSet=

31 knowledgeBase=

32 onLine=2 33

34 [Coll-1]

35 collPath=d:\cfusion\verity\

collections\MyLineCruisesCol\custom

36 col!Alias=MyLineCruisesCol_custom

37 topicSet=

38 knowledgeBase=

39 onLine=2

40 ## Окончание файла

ColdFusion использует режим К2 для поиска в коллекциях при условии, что:

После того как ini-файл подготовлен, можно запускать поисковый сервер Verity K2.

В Windows NT для этого следует запустить файл k2server.exe с соответствующими параметрами:

k2server -ntservice 1 -inifile k2server.ini

Теперь, когда поисковый сервер К2 запущен, можно осуществлять поиск. Например:

<CFSEARCH NAME = "MySearchK2"

COLLFCTION = "MyLineCrruisesCol_file"

TYPE="Explicit"

CRITERIA = "<PARAGRAPH>(Liberty, State, Building)">

<CFTABLE QUERY = "MySearchK2" COLHEADERS>

<CFCOL HEADER = "Score" TEXT = "#Score#">

<CFCOL HEADER = "Title" TEXT = "#Title#"

<CFCOL HEADER = "Summary" TEXT = "#Summary#">

<CFCOL HEADER = "Customl" TEXT = "#Custom#"> </CFTABLE>

Для завершения работы поискового сервера в Windows NT необходимо из командной строки запустить файл k2server.exe следующим образом:

k2server -ntservice

Резюме

Подведем итог. В данной главе мы познакомились с CFML-тегами

<CFCOLLECTION>, <CFINDEX> И <CFSEARCH>.